package main

import "fmt"

func main() {

	//var name1 = "王宏宇"
	//var name2 = "王博宇"
	//var name3 = "孙洺邗"

	var nameList [3]string
	nameList = [3]string{"王宏宇", "王博宇", "孙洺邗"}
	for i := 0; i < len(nameList); i++ {
		fmt.Print(nameList[i], " ")
	}
	fmt.Println()

	//在go语言中的数组，元素可以是变量名，而不是实在的数据等
	var nameList1 [3]string
	var name = "董文涛"
	nameList1 = [3]string{"李政杰", "马维", name}
	for i := 0; i < len(nameList1); i++ {
		fmt.Print(nameList1[i], " ")
	}
	fmt.Println()

	for i, s := range nameList1 { //范围for语法，属于用集合之类的来充当范围
		fmt.Println(i, s) //可以打印序号和数据信息
	}
	fmt.Println()
	/*
			   数组的注意：
			   数组里的元素必须全部为同一类型，要嘛全部是字符串，要嘛全部是整数
			   声明数组时，必须指定其长度或者大小
		       list = [n]int  这个是数组的声明
	*/

	//我们可以声明并直接定义数组的长度，这与Java相同
	var nums = []int{1, 2, 3, 4, 5}
	for i, num := range nums {
		fmt.Println(i, num)
	}
	fmt.Println()

	//在Go语言中不支持数组的负向索引
	//如果我们要打印
	for i := len(nums); i > 0; i-- {
		fmt.Print(i, " ")
	}
}
